package com.zc.mapper;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.zc.dto.ExamScoreTrendDTO;
import com.zc.dto.ScoreStudentDTO;
import org.apache.ibatis.annotations.Mapper;
import com.zc.pojo.Scores;
import org.apache.ibatis.annotations.Param;

import java.util.List;


@Mapper
public interface ScoresMapper extends BaseMapper<Scores> {
    // 关联查询：成绩表 + 学生表
    IPage<ScoreStudentDTO> selectScoreWithStudent(
            @Param("page") Page<ScoreStudentDTO> page,
            @Param("name") String name,  // 学生姓名（可选筛选）
            @Param("examId") Integer examId,  // 考试ID（可选筛选）
            @Param("selectedClass") String selectedClass  // 班级（可选筛选）
    );

    // 导出用：查询所有符合条件的数据（不分页）
    List<ScoreStudentDTO> exportScoreWithStudent(
            @Param("name") String name,
            @Param("examId") Integer examId,
            @Param("selectedClass") String selectedClass
    );
    // 根据学生ID查询所有考试的成绩趋势（成绩+班排名+级排名）
    List<ExamScoreTrendDTO> selectStudentScoreTrend(@Param("studentId") Integer studentId);
    // 根据studentId列表查询数据（批量选中导出）
    List<ScoreStudentDTO> selectByStudentIds(@Param("studentIds") List<Integer> studentIds);


}

